aboutsummaryrefslogtreecommitdiff
path: root/pages/anime/[...id].js
diff options
context:
space:
mode:
authorFactiven <[email protected]>2023-05-17 14:25:48 +0700
committerGitHub <[email protected]>2023-05-17 14:25:48 +0700
commit9ca4f38db1ac191fe0ce9d455940e09170307d47 (patch)
tree38075d519df814fe96c5a83f557f23b71e28e4b3 /pages/anime/[...id].js
parentUpdate v3.5.7 (#12) (diff)
downloadmoopa-9ca4f38db1ac191fe0ce9d455940e09170307d47.tar.xz
moopa-9ca4f38db1ac191fe0ce9d455940e09170307d47.zip
update v3.5.8 (#13)
* Merge request (#11) * Update v3.5.5 > Now Skip button will hide if player is not in focused state. > Added some options to player. > Manga images should be displayed now. * Update videoPlayer.js * Revamp hero section #1 * UI Improvement > Updating main page > Updated Genres selection using params method > Added search bar v1.0 on main page ( [ctrl + space] to access search bar ) * update meta * Update [...id].js * Update [...id].js > Back to ssr I guess * update episode selector * Update [...info].js * Update UI > Added On-Going section for AniList user * Update content.js * added dynamic og * Update og.jsx * Update og * Update og.jsx * update og and id fallback > Added fallback for anime info if it's not found * Update v3.5.7 * Update v3.5.8 > Added fallback for empty episodes
Diffstat (limited to 'pages/anime/[...id].js')
-rw-r--r--pages/anime/[...id].js33
1 files changed, 24 insertions, 9 deletions
diff --git a/pages/anime/[...id].js b/pages/anime/[...id].js
index dc385f9..a2c84a4 100644
--- a/pages/anime/[...id].js
+++ b/pages/anime/[...id].js
@@ -20,6 +20,7 @@ import Modal from "../../components/modal";
import { signIn, useSession } from "next-auth/react";
import AniList from "../../components/media/aniList";
import ListEditor from "../../components/listEditor";
+import { closestMatch } from "closest-match";
const query = `
query ($username: String, $status: MediaListStatus) {
@@ -143,7 +144,6 @@ const infoQuery = `query ($id: Int) {
export default function Info({ info, color }) {
const { data: session } = useSession();
const [data, setData] = useState(null);
- // const [infos, setInfo] = useState(null);
const [episode, setEpisode] = useState(null);
const [loading, setLoading] = useState(false);
const [progress, setProgress] = useState(0);
@@ -151,8 +151,6 @@ export default function Info({ info, color }) {
const [stall, setStall] = useState(false);
const [domainUrl, setDomainUrl] = useState("");
- // console.log(info);
-
const [showAll, setShowAll] = useState(false);
const [open, setOpen] = useState(false);
@@ -240,10 +238,28 @@ export default function Info({ info, color }) {
if (!data || data?.episodes?.length === 0) {
const res = await fetch(
- `https://api.consumet.org/meta/anilist/info/${id[0]}?provider=9anime`
+ `https://api.moopa.my.id/anime/gogoanime/${info.title.romaji}`
);
const datas = await res.json();
- if (res.status === 500) {
+
+ if (datas) {
+ const release = datas.results.map((i) => i.releaseDate);
+ const match = closestMatch(info.startDate.year, release);
+ const filter = datas.results.find((i) => i.releaseDate === match);
+
+ // const found = filter.find((i) => i.title === info.title.romaji);
+
+ // setLog(found);
+
+ if (filter) {
+ const res = await fetch(
+ `https://api.moopa.my.id/anime/gogoanime/info/${filter.id}`
+ );
+ const dataA = await res.json();
+ setEpisode(dataA.episodes);
+ // setLog(dataA);
+ }
+ } else if (res.status === 500) {
setEpisode(null);
setEpiStatus("error");
setError(datas.message);
@@ -254,7 +270,6 @@ export default function Info({ info, color }) {
// backgroundColor: `${data?.color || "#ffff"}`,
// color: textColor,
// });
- setStall(true);
} else {
setEpisode(data.episodes);
}
@@ -323,7 +338,7 @@ export default function Info({ info, color }) {
}
}
fetchData();
- }, [id, session?.user?.name]);
+ }, [id, session?.user?.name, info]);
function handleOpen() {
setOpen(true);
@@ -718,7 +733,7 @@ export default function Info({ info, color }) {
data && (
<div className="flex h-[640px] flex-col gap-5 scrollbar-thin scrollbar-thumb-[#1b1c21] scrollbar-thumb-rounded-full overflow-y-scroll hover:scrollbar-thumb-[#2e2f37]">
{epiStatus === "ok" ? (
- episode?.length !== 0 ? (
+ episode?.length !== 0 && episode ? (
episode?.map((epi, index) => {
return (
<div
@@ -726,7 +741,7 @@ export default function Info({ info, color }) {
className="flex flex-col gap-3 px-2"
>
<Link
- href={`/anime/watch/${epi.id}/${data.id}/${
+ href={`/anime/watch/${epi.id}/${info.id}/${
stall ? `9anime` : ""
}`}
className={`text-start text-sm lg:text-lg ${